package com.outdd.vaietool.common.utils;

import lombok.extern.slf4j.Slf4j;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.net.URLEncoder;

/**
 * 浏览器相关工具类
 * @author vaie
 */
@Slf4j
public class BrowserUtil {

    public static String download(InputStream sbs,String fileName,String suffix , HttpServletResponse response){

        try{

            //判断浏览器代理并分别设置响应给浏览器的编码格式
            String finalFileName = URLEncoder.encode(fileName+suffix,"UTF8");//其他浏览器
            //设置HTTP响应头
            response.reset();//重置 响应头
            response.setContentType("application/x-download");//告知浏览器下载文件，而不是直接打开，浏览器默认为打开
            response.addHeader("Content-Disposition" ,"attachment;filename=\"" +finalFileName+ "\"");//下载文件的名称

            // 循环取出流中的数据
            byte[] b = new byte[1024];
            int len;
            while ((len = sbs.read(b)) > 0){
                response.getOutputStream().write(b, 0, len);
            }
            sbs.close();
            response.getOutputStream().close();
        }catch(Exception e) {
            e.printStackTrace();
        }
        return "";
    }
}
